In a digital multimedia data server connected to a communication network, for example a digital video surveillance camera or video-conferencing camera which sends audio and video data, the data is coded in a digital compression format and then stored locally in a buffer memory or storage buffer before being transmitted over the network to one or more clients.
These clients receive and consume this data, for example by playing the video and the audio, as they are received. This is known as multimedia “streaming”.
These multimedia streams consist of data such as images or pictures, portions or slices of images or sound samples which exhibit the characteristic of having a limited useful life span, that is, this data must imperatively be received and processed by the receiving peripheral device before a certain expiry time. This expiry time corresponds to the instant at which the data is required to be displayed or played by the client. After this expiry time, the data item becomes useless and is purely and simply ignored by the client.
The multimedia data is compressed so as to be able to be sent over a network with limited bandwidth. This compression degrades the quality of the data, but is necessary in order to adapt the data to the bandwidth of the network. It is therefore important to make the best possible use of the bandwidth of the network so as to compress the data as little as possible and have the best quality.
It is also necessary to avoid modifying the compression rate of the multimedia data too quickly. This is because the quality perceived by the user for data with a rapidly varying compression rate is severely degraded. In the case of a video, for example, the eye is very sensitive to the changes in quality of the images. It is therefore important to have smooth variations.
In addition, compression creates dependencies between the successive data items. Therefore, if one data item is not received, the following data items are corrupted for a certain period of time. In the case of video data, this is known as compression with motion compensation. The video may be coded in accordance with one of the standards described in the ITU-T recommendations H.263, H.264, or else MPEG-4.
These multimedia streams are transmitted over communication networks consisting of interconnection nodes (routers, switches, etc.) so as to convey the data packets coming from source devices to destination devices. They share these networks with other data streams (for example from Internet browsing, a video game, the transfer of a file to a printer, etc.). All these data streams may thus create congestion on the communication networks when they pass through the same network link of insufficient capacity. The surplus packets generally end up being rejected by the interconnection node located at the entry to the link.
Traditionally, servers and clients use communication protocols which implement control mechanisms so as to avoid continually losing a large quantity of data in the event of congestion. They make it possible to detect the occurrence of a congestion phenomenon as a function of packet losses, and they act on the transmission rate of the data stream in order to reduce it or increase it, so as to be compatible with the overall bandwidth of the network.
The congestion control mechanisms generally used in IP networks are of the TFRC (“TCP Friendly Rate Control”, IETF RFC3448) or AIMD (“Additive Increase/Multiplicative Decrease”, IETF RFC2581) type. These algorithms periodically calculate the quantity of data that can be sent. Packets corresponding to this quantity of data are then taken from the buffer of data that have already been coded, and are sent over the network.
The rate calculated by the congestion control may vary very rapidly and much more rapidly than the changes in the compression rate of the multimedia data. This may lead to a significant increase in the quantity of data in the buffer of data to be sent, and may therefore give rise to significant waiting times. Due to the limited life span of the data packets, this wait may render certain packets unusable by the client, which, due to the dependencies between data, may also have a very substantial impact on the quality perceived by the user.
It is therefore desired to reduce the impact of a rapid change in the available bandwidth on the quality of the data.
The patent document WO-A-2004 064373 discloses a method for coding a video using a reference image buffer containing a plurality of images, these reference images being used in the context of the aforementioned dependency between data. A number of techniques are presented for selecting the best reference to use. In particular, the coder receives the information about bandwidth and packet loss. It can adapt the size of the images to the bandwidth. In the case of a reduction in bandwidth, the coder can select an older reference image since it is of better quality. In the case of packet losses, it can calculate the propagation of the error and avoid using as reference an image that has been affected by the error.
However, the described system has the disadvantage in particular of a lack of reactivity in response to the variations in bandwidth.
The paper by Sang H. Kang and Avideh Zakhor entitled “Packet scheduling algorithm for wireless video streaming”, Packet Video workshop 2002, describes a packet scheduler for sending videos. The sending rate of the packets is adapted to the constraints of the network bandwidth. The order of the packets to be sent is adapted by the scheduler to the structure of the video and to the expiry times of the images: the images of type I have a higher priority than the images of type P; the images P at the start of a Group Of Pictures (GOP) have a higher priority than the images P at the end of a GOP since they have a greater number of dependent images.
However, this solution is also not satisfactory in terms of the reactivity in the event of a change in bandwidth.
The patent document U.S. Pat. No. 6,141,380 discloses a method for coding a video. The coder may decide to skip the next image, that is, not to code it. This decision is based on the quality of the video, in particular on the motion, and on an estimate of the available bandwidth.
However, this method also does not offer sufficient reactivity to adapt the coding and the transmission of data to the variations in bandwidth.